package com.aaa.dem1107.d03;

/**
 * @Author: whj
 * @Version 1.0
 * @Date: 2022/11/7  10:32
 */

    /**
     * 懒汉式双重校验
     */
public class Singleton2 {
        //第一步
        private Singleton2() {
        }

        //声明一个静态的本类对象----懒汉式
        private static Singleton2 singleton;

        //提供一个静态方法返回本类的对象
        public static Singleton2 getInstance() {
            //如果多个线程进来后发现sington不等于null,则无需在获取锁对象
            if(singleton==null){
                synchronized (Singleton2.class){
                    //如果对象不等于null则无需创建对象
                    if(singleton==null){
                        singleton=new Singleton2();
                    }
                }
            }
            return singleton;
        }

        public void show() {
            System.out.println("~~~~~~~~~~~~~~~~~~~~~show方法~~~~~~~~~~~~~~~");
        }
}
